Object or pattern recognition is finding wide applications in industry. The two main techniques utilized for object classification or recognition are template matching and recognition by features. In template matching, the objective is to find the best embedding of a template subimage in an observed image, over transformations such as translation. In practice, one approach is to store a dense set of possible views (or other image descriptors) so that any sensed image is "sufficiently close" to one member of the dense set of views. This approach has at least two problems for many real applications. First, cardinality of the set of views becomes too large for storage and efficient retrieval. Secondly, template matching (particularly matching of an entire image) is very time consuming for a large template library unless it is done in special purpose hardware.
Recognition by features, on the other hand, may have less accuracy of recognition, especially if simple features are used. Accuracy can be improved by including a larger set of sophisticated features, but this increases complexity. What is desired is an object recognition system which is fast and accurate.